home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group00a.txt / 000105_icon-group-sender _Wed May 17 12:23:02 2000.msg < prev    next >
Internet Message Format  |  2001-01-03  |  3KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.9.1a/8.9.1) id MAA09657
  4.     for icon-group-addresses; Wed, 17 May 2000 12:22:45 -0700 (MST)
  5. Message-Id: <200005171922.MAA09657@baskerville.CS.Arizona.EDU>
  6. Subject: Re: Is Anyone Working On A Unicode Version Of Icon?
  7. Date: Wed, 17 May 2000 10:49:08 -0700
  8. x-sender: cary@adlmail.cup.hp.com
  9. From: Cary Coutant <cary@cup.hp.com>
  10. To: "Steve Wampler" <swampler@noao.edu>,
  11.         "icon-group" <icon-group@optima.CS.Arizona.EDU>
  12. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  13. Status: RO
  14.  
  15. >Just for historical accuracy...
  16. >
  17. >1979 is the first C implemenation of Icon (done by Cary Coutant and me) -
  18. >the first implementation of Icon (an amazing beast written in FORTRAN that
  19. >producing FORTRAN (really RatFor) executables) was several years old by
  20. >that time.  Also, the C implementation was done on a PDP 11/70, with
  21. >its 64K address space - so some of the implementation decisions were driven
  22. >by considerations that are no longer relevant!
  23. >
  24. >Cary produced a compiler for Icon at the same time, but there was 
  25. >surprisingly
  26. >little improvement over the interpreter because Icon spends most of its time
  27. >in the run-time system, which is already compiled code.  It wasn't until 
  28. >later
  29. >that Ken Walker's work produced a more efficient optimizing compiler.
  30.  
  31. To clarify a bit more, the first implementation we did in 1979 was sort 
  32. of a compiler. The icon translator still generated the "u-code" -- our 
  33. intermediate representation -- and the icon linker then generated a 
  34. single, large, PDP-11 assembly-language source file. This file was then 
  35. assembled and linked against the large Icon runtime library to produce a 
  36. native executable. The assembly code was really little more than calls to 
  37. the runtime system, and was a very straightforward and simple translation 
  38. of the Icon intermediate code.
  39.  
  40. The problem with this approach was that the runtime library was so huge 
  41. that link times were large even for a simple "hello, world" program.
  42.  
  43. Around 1981, I think, I spent a week modifying the Icon linker to produce 
  44. the Icon byte code instead of PDP-11 assembly language, and then built a 
  45. small interpreter, linked to the runtime system. Now, the Icon linker 
  46. needed only to produce a small bytecode file that could be read and 
  47. interpreted by "iconx." The result was greatly improved compile and link 
  48. times, very little runtime performance difference, and -- finally -- 
  49. easier portability to other Unix machines.
  50.  
  51. At the time, I was just copying the idea of a bytecode interpreter from 
  52. the Pascal p-system. Little did I realize that Sun had yet to "invent" 
  53. bytecode!
  54.  
  55. -cary
  56.